Amazon S3에서 지역 간 객체 복제 기능 사용해 보기

Amazon S3에서 지역 간 객체 복제 기능 사용해 보기

Amazon S3에서 지역 간 객체 복제 기능을 사용해 봤습니다.
Clock Icon2024.10.05

안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 Amazon S3에서 지역 간 객체 복제 기능을 사용해 봤습니다.

지역 간 객체 복제 기능이란?

복제를 사용하여 Amazon S3 버킷에서 객체를 자동으로 비동기적으로 복사할 수 있습니다.

AWS 공식 문서를 살펴보면 Amazon S3 버킷의 객체를 자동으로 다른 Amazon S3 버킷으로 비동기적 복사를 수행한다고 설명하고 있습니다.

https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html?icmpid=docs_amazons3_console

해보자

도쿄 리전에서 버지니아 리전으로 Amazon S3 버킷 내부의 객체를 복사해 보도록 하겠습니다. 이를 위한 테스트용 Amazon S3 버킷 두 개를 생성했습니다.

  • ap-northeast1-jaewook-bucket
  • us-east1-jaewook-bucket

jw-blgs3daow-1

지역 간 객체 복제 기능을 설정하기에 앞서 객체를 전송할 Amazon S3 버킷에서 버저닝을 활성화해야 합니다. 이번 블로그에서는 도쿄 리전에서 생성한「ap-northeast1-jaewook-bucket」이 객체를 전송할 Amazon S3 버킷이 됩니다.

jw-blgs3daow-2

버저닝을 활성화했다면, 복제 규칙을 생성합시다.

jw-blgs3daow-3

먼저 복제 규칙 이름을 입력하고, 복제 규칙이 생성과 동시에 복제를 시작하도록 상태를 활성화시킵니다.

jw-blgs3daow-4

필터를 적용하여 Amazon S3 버킷 내부의 특정 폴더만 복제하게 설정할 수 있지만, 이번에는 테스트용이므로 Amazon S3 버킷 내부의 모든 객체를 복제하도록 합시다.

jw-blgs3daow-5

복제할 대상 Amazon S3 버킷을 선택합니다.

jw-blgs3daow-6

이어서 IAM 역할을 선택하는데, 새 역할 생성을 선택하면 아래와 같은 권한을 가진 IAM 역할이 생성됩니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "s3:ListBucket",
                "s3:GetReplicationConfiguration",
                "s3:GetObjectVersionForReplication",
                "s3:GetObjectVersionAcl",
                "s3:GetObjectVersionTagging",
                "s3:GetObjectRetention",
                "s3:GetObjectLegalHold"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::ap-northeast1-jaewook-bucket",
                "arn:aws:s3:::ap-northeast1-jaewook-bucket/*",
                "arn:aws:s3:::us-east1-jaewook-bucket",
                "arn:aws:s3:::us-east1-jaewook-bucket/*"
            ]
        },
        {
            "Action": [
                "s3:ReplicateObject",
                "s3:ReplicateDelete",
                "s3:ReplicateTags",
                "s3:ObjectOwnerOverrideToBucketOwner"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::ap-northeast1-jaewook-bucket/*",
                "arn:aws:s3:::us-east1-jaewook-bucket/*"
            ]
        }
    ]
}

적절하게 IAM 역할을 선택하거나 새 역할 생성 선택합니다.

jw-blgs3daow-7

마지막으로 추가 복제 옵션을 확인합니다. 이번에는 테스트용이므로 옵션 선택없이 복제 규칙을 생성합니다. 각 추가 복제 옵션에 대해서는 아래 AWS 공식 문서에서 확인할 수 있습니다.

https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/replication-time-control.html

https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/replication-config-for-kms-objects.html

https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/replication-for-metadata-changes.html

https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/delete-marker-replication.html

jw-blgs3daow-8

복제 규칙을 생성하면, 다음과 같은 팝업창이 표시됩니다. 기존 Amazon S3 버킷에 보존되어 있는 객체를 복제할 것인지, 복제 규칙이 생성된 이후부터 복제를 진행할 것인지에 대한 선택입니다. 이번에는 테스트용으로 Amazon S3 버킷을 생성했고, 어떠한 객체도 업로드하지 않았기 때문에「아니요. 기존 객체를 복제하지 않습니다.」를 선택합니다.

결과 확인

jw-blgs3daow-9

복제 규칙을 생성했다면, Amazon S3 버킷 관리 탭에서 생성한 복제 규칙을 확인할 수 있습니다.

jw-blgs3daow-10

테스트를 위해 도쿄 리전에서 생성한 Amazon S3 버킷에 업로드를 실시합니다.

us-east1-jaewook-bucket_-_S3_버킷___S3___us-east-1

대상 Amazon S3 버킷을 확인해 보면 성공적으로 복제된 것을 확인할 수 있습니다.

본 블로그 게시글을 읽고 궁금한 사항이 있으신 분들은 jaewookkim533@yahoo.com로 보내주시면 감사하겠습니다.

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.